package com.junjie.base.datasource.db;

import java.util.List;

public interface BaseService<T> {

    /**
     * 基础的新增数据Dao
     * @param o 实体类对象
     * @return 更新数据行数
     */
    int insert(T o);

    /**
     * 基础的根据ID删除数据Dao
     * @param id ID
     * @return 更新数据行数
     */
    int delete(long id);

    /**
     * 基础的根据ID修改数据Dao
     * @param o 实体类对象
     * @return 更新数据行数
     */
    int update(T o);

    /**
     * 基础的根据Id查询单条数据Dao
     * @param id ID
     * @return 封装好的实体类对象
     */
    T findById(long id);

    /**
     * 基础的查询所有数据Dao
     * @return 封装好的实体类对象列表
     */
    List<T> findAll();

    /**
     * 基础的模糊搜索Dao
     * @param o 实体类对象
     * @return 封装好的实体类对象列表
     */
    List<T> search(T o);

    /**
     * 基础的条件查询Dao
     * @param o 实体类对象
     * @return 封装好的实体类对象列表
     */
    List<T> termSearch(T o);

}
